﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using xplang.parse;
using xplang.abstractions;

namespace xplang.errors
{
  public class UnsuportedOperationError : Error
  {

    public UnsuportedOperationError(ClassRef left, ClassRef right, Token pos)
      : base(pos)
    {
      this.left = left;
      this.right = right;
    }

    public readonly ClassRef left;
    public readonly ClassRef right;
    public override String message()
    {
      if (right == null)
        return "A operação \"" + left.refname() + pos.text + "\" não é suportada";
      if (left == null)
        return "A operação \"" + pos.text + right.refname() + "\" não é suportada";
      return "A operação \"" + left.refname() + " " + pos.text + " " + right.refname() + "\" não é suportada";
    }
  }

}
